trait Shape{
    fn area(self: &Self) -> f64;
} 

struct Circle{
    radius: f64,
}

impl Shape for Circle{
    fn area(&self) -> f64{
        std::f64::consts::PI * self.radius * self.radius
    }
}

impl Circle{
    fn get_radius(&self) -> f64{
        self.radius
    }
}

fn main(){
    let circle = Circle{radius: 10.0f64};
    let s = circle.area();
    //let r = Circle::get_radius(&circle);
    let r = circle.get_radius();
    println!("circle: r = {}, s = {:0.4}",r , s);
}
